var api = require('../../utils/api.js')
Page({
  data: {
    cityName: "",
    future_weather: [],
    input_city_name: "",
    input_city_name_tianqi: "城市名",
    input_future_weather: [],
    temperature: "",
    humidity: ""
  },
  btn_input_city_click() {
    var input_city = this.data.input_city_name
    if (input_city == '' || input_city == null) {
      wx.showToast({
        title: '请输入你要查询的城市名', //提示的内容
        icon: 'success', //图标，只支持"success"、"loading"
        duration: 2000, //提示的延迟时间，单位毫秒，默认：1500, 最大为10000
      })
      return
    }
    var that = this
    wx.request({
      url: api.MOB_TIANQI_URL,
      data: {
        "key": api.MOB_APPID,
        "city": input_city
      },
      method: 'get',
      header: {
        'Content-Type': 'application/json'
      },
      success(res) {
        switch (res.data.retCode) {
          case '200':
            that.setData({
              input_future_weather: res.data.result[0].future,
              input_city_name_tianqi: res.data.result[0].city == res.data.result[0].distrct ? res.data.result[0].city : res.data.result[0].city + res.data.result[0].distrct,
              input_city_name: ""
            })
            var lishi = wx.getStorageSync('lishi') || []
            lishi.unshift(input_city)
            wx.setStorage({
              key: "lishi",
              data: lishi,
              success() {
                console.log('储存数据成功!')
              }
            })
            break;
          case '20402':
            wx.showModal({
              title: '暂无该城市的天气信息', //提示的标题
              content: '请输入正确的城市名', //提示的内容
              showCancel: false, //是否显示取消按钮，默认为 true
              cancelText: '取消', //取消按钮的文字，默认为"取消"
              cancelColor: '#000000', //取消按钮的文字颜色，默认为"#000000"
              confirmText: '好的', //确定按钮的文字，默认为"确定"
              confirmColor: '#3CC51F' //确定按钮的文字颜色，默认为"#3CC51F"
            })
            that.setData({
              input_city_name: ""
            })
            break;
          default:
            wx.showModal({
              title: '获取天气信息失败', //提示的标题
              content: '请检查网络设置', //提示的内容
              showCancel: false, //是否显示取消按钮，默认为 true
              cancelText: '取消', //取消按钮的文字，默认为"取消"
              cancelColor: '#000000', //取消按钮的文字颜色，默认为"#000000"
              confirmText: '好的', //确定按钮的文字，默认为"确定"
              confirmColor: '#3CC51F' //确定按钮的文字颜色，默认为"#3CC51F"
            })
            break;
        }
      },
      fail(res) {
        wx.showModal({
          title: '获取天气信息失败', //提示的标题
          content: '请检查网络设置', //提示的内容
          showCancel: false, //是否显示取消按钮，默认为 true
          cancelText: '取消', //取消按钮的文字，默认为"取消"
          cancelColor: '#000000', //取消按钮的文字颜色，默认为"#000000"
          confirmText: '好的', //确定按钮的文字，默认为"确定"
          confirmColor: '#3CC51F' //确定按钮的文字颜色，默认为"#3CC51F"
        })
        that.setData({
          input_city_name: ""
        })
      }
    })
  },
  input_city_valueChangeEvent(res) {
    this.setData({
      input_city_name: res.detail.value
    })
  },
  onLoad(options) {
    // 页面初始化 options为页面跳转所带来的参数
    var that = this
      //取出保存到本地的当前城市和最后查询的历史城市的天气信息
    wx.getStorage({
      key: "current_city_tianqi_info",
      success(res) {
        if (res.data != null) {
          that.setData({
            future_weather: res.data.result[0].future,
            input_future_weather: res.data.result[0].future,
            temperature: '温度:' + res.data.result[0].temperature,
            humidity: res.data.result[0].humidity,
            cityName: res.data.result[0].city == res.data.result[0].distrct ? res.data.result[0].city : res.data.result[0].city + res.data.result[0].distrct
          })
        }
      }
    })

    wx.getStorage({
      key: "lishi_city_tianqi_info",
      success(res) {
        if (res.data != null) {
          that.setData({
            input_future_weather: res.data.result[0].future,
            input_city_name_tianqi: res.data.result[0].city == res.data.result[0].distrct ? res.data.result[0].city : res.data.result[0].city + res.data.result[0].distrct,
            input_city_name: ""
          })
        }
      }
    })

    //获取位置信息
    wx.getLocation({
      type: 'wgs84',
      success(res) {
        var latitude = res.latitude
        var longitude = res.longitude
          //获取当前城市
        wx.request({
          url: api.BAIDU_LOCATION_TO_CITY_URL,
          data: {
            "location": longitude + "," + latitude,
            "ak": api.BAIDU_LOCATION_TO_CITY_APP_ID,
            "output": "json"
          },
          method: 'get',
          header: {
            'Content-Type': 'application/json'
          },
          success(res) {
            var city = res.data.city.substring(0, res.data.city.length - 1)
            that.setData({
              cityName: city,
              input_city_name_tianqi: city
            })
            wx.request({
              url: api.MOB_TIANQI_URL,
              data: {
                "key": api.MOB_APPID,
                "city": city
              },
              method: 'get',
              header: {
                'Content-Type': 'application/json'
              },
              success(res) {
                switch (res.data.retCode) {
                  case '200':
                    that.setData({
                        future_weather: res.data.result[0].future,
                        input_future_weather: res.data.result[0].future,
                        temperature: '温度:' + res.data.result[0].temperature,
                        humidity: res.data.result[0].humidity
                      })
                      //把当前城市的天气信息保存起来
                    wx.setStorage({
                      key: "current_city_tianqi_info",
                      data: res.data
                    })

                    //获取最后查询的城市(如果有)并显示其天气信息
                    wx.getStorage({
                      key: "lishi",
                      success(res) {
                        if (res.data == null) {
                          console.log('储存为空')
                        } else {
                          var ls_city = res.data[0]
                          console.log(ls_city)
                          wx.request({
                            url: api.MOB_TIANQI_URL,
                            data: {
                              "key": api.MOB_APPID,
                              "city": ls_city
                            },
                            method: 'get',
                            header: {
                              'Content-Type': 'application/json'
                            },
                            success(res) {
                              switch (res.data.retCode) {
                                case '200':
                                  that.setData({
                                      input_future_weather: res.data.result[0].future,
                                      input_city_name_tianqi: res.data.result[0].city == res.data.result[0].distrct ? res.data.result[0].city : res.data.result[0].city + res.data.result[0].distrct,
                                      input_city_name: ""
                                    })
                                    //把最后一次查询城市的天气信息保存起来
                                  wx.setStorage({
                                    key: "lishi_city_tianqi_info",
                                    data: res.data
                                  })
                                  break;
                                case '20402':
                                  wx.showToast({
                                    title: '暂无该城市的天气信息', //提示的内容
                                    icon: 'success', //图标，只支持"success"、"loading"
                                    duration: 2000, //提示的延迟时间，单位毫秒，默认：1500, 最大为10000
                                  })
                                  that.setData({
                                    input_city_name: ""
                                  })
                                  break;
                                default:
                                  wx.showToast({
                                    title: '获取天气信息失败', //提示的内容
                                    icon: 'success', //图标，只支持"success"、"loading"
                                    duration: 2000, //提示的延迟时间，单位毫秒，默认：1500, 最大为10000
                                  })
                                  that.setData({
                                    input_city_name: ""
                                  })
                                  break;
                              }
                            },
                            fail(res) {
                              wx.showToast({
                                title: '获取天气信息失败' + res.errMsg, //提示的内容
                                icon: 'success', //图标，只支持"success"、"loading"
                                duration: 2000, //提示的延迟时间，单位毫秒，默认：1500, 最大为10000
                              })
                            }
                          })
                        }
                      }
                    })
                    break;
                  case '20402':
                    wx.showToast({
                      title: '该城市暂无天气信息', //提示的内容
                      icon: 'success', //图标，只支持"success"、"loading"
                      duration: 2000, //提示的延迟时间，单位毫秒，默认：1500, 最大为10000
                    })
                    break;
                  default:
                    wx.showToast({
                      title: '获取天气信息失败', //提示的内容
                      icon: 'success', //图标，只支持"success"、"loading"
                      duration: 2000, //提示的延迟时间，单位毫秒，默认：1500, 最大为10000
                    })
                    break;
                }
              },
              fail(res) {
                wx.showToast({
                  title: '获取天气信息失败' + res.errMsg, //提示的内容
                  icon: 'success', //图标，只支持"success"、"loading"
                  duration: 2000, //提示的延迟时间，单位毫秒，默认：1500, 最大为10000
                })
              }
            })
          },
          fail(res) {
            wx.showToast({
              title: '网络请求失败,请检查网络设置', //提示的内容
              icon: 'success', //图标，只支持"success"、"loading"
              duration: 2000, //提示的延迟时间，单位毫秒，默认：1500, 最大为10000
            })
          }
        })
      },
      fail(res) {
        wx.showModal({
          title: '失败', //提示的标题
          content: '定位失败,请检查网络设置', //提示的内容
          showCancel: false, //是否显示取消按钮，默认为 true
          cancelText: '取消', //取消按钮的文字，默认为"取消"
          cancelColor: '#000000', //取消按钮的文字颜色，默认为"#000000"
          confirmText: '好的', //确定按钮的文字，默认为"确定"
          confirmColor: '#3CC51F' //确定按钮的文字颜色，默认为"#3CC51F"
        })
      }
    })
  },
  onReady() {
    // 页面渲染完成

  },
  onShow() {
    // 页面显示

  },
  onHide() {
    // 页面隐藏

  },
  onUnload() {
    // 页面关闭

  }
})